The present disclosure relates to a computer-implemented clipboard for capturing information from one or more separate applications, such as a database application or a word processing application.
A computer system can be configured to execute a number of applications that are available for use by a computer user. In some instances a computer user can desire to share information between two or more such applications. For example, a user may wish to copy text or figures from a word processing application into a spreadsheet application instead of manually reentering the information. Thus, the word processing application and the spreadsheet application can communicate, via a user's executing of “cut”, “copy”, and “paste” operations, to share the information. If the applications cannot communicate directly, they can be configured to communicate through an additional application, such as an electronic clipboard (“clipboard”).
The computer system can implement the clipboard in a manner that allows the clipboard to operate as a common buffer that is accessible to two or more applications. For example, information that has been selected in a first application can be added to the clipboard through a capture operation, such as a cut or copy command. Further, once it is available in the clipboard, the captured information can be transferred to one or more separate applications. The captured information also can be retained in the clipboard for further use. Additionally, a clipboard can be associated with one of the communicating applications hosted on the computer system. Alternatively, the clipboard can comprise a separate application. The clipboard also can be part of a graphical user interface (GUI) environment hosted by the computer system and can be structured as a block of memory that is accessible to the applications operating within the GUI environment.
A basic clipboard can accept simple objects, such as plain text and figures. In some implementations, however, a clipboard can be configured to accept meta-information associated with an object, including font, text size, style, color, and formatting. Further, a clipboard also can be configured to accept data structures used to define various attributes of an object, including formulae and references. An object that includes corresponding meta-information or a data structure is referred to as a complex object.
If supported by the clipboard and the receiving application, meta-information and/or data structures associated with a complex object also can be transferred between applications. For example, a spreadsheet cell can be copied into a clipboard such that an associated formula or reference is preserved and updated when the information is inserted into a different application. Alternatively, if a clipboard cannot support a complex object, the clipboard can be configured to reformat the complex object into a simple object that is supported. For example, the clipboard can convert a complex object, such as a HyperText Markup Language (HTML) object, into a simple object, such as plain text.
An object that is to be added to a clipboard can be selected through a number of operations, including a cut or copy command applied to a selected item of information. For example, a portion of text can be selected and captured from a document and added to a clipboard using the copy command included in an associated word processor application. Further, the copy operation used to select information can be initiated by a user through an input interface, such as a keyboard or a cursor. Alternatively, the information to be captured can be automatically selected from an application and copied to the clipboard in response to an event detected by an associated application.
Once information has been added to the clipboard, it can be inserted at a specific location in a target application, such as an electronic document, a spreadsheet, or a form. For example, a user can initiate a paste command to insert the contents of the clipboard into an electronic document at a selected location. If the paste operation is nondestructive, the object in the clipboard is retained and can be successively reapplied.
Further, the amount of storage allocated to a clipboard can be limited. Once the clipboard is full, additional information cannot be added until existing information is deleted. Therefore, the amount of information made accessible through the clipboard can be restricted. In some implementations the clipboard can be limited to a single transaction. Under such a model, each operation that adds an object to the clipboard also functions to overwrite the previous clipboard contents. Therefore, a newly added object is available for use only until the next item of information is captured.
In another implementation, a clipboard manager can enable a clipboard to store multiple objects and to perform multiple transactions. The clipboard can be configured as a first-in first-out (FIFO) stack or a scrap book. In such an implementation, the object most recently added to the clipboard can be inserted at the top of the stack. When an object is subsequently added to the clipboard, the object at the bottom of the stack is deleted. Thus, the clipboard retains the objects that have been most recently captured.
Alternatively, once the clipboard is at capacity, the clipboard manager can permit the user to select one or more objects to remove from the clipboard when a new object is to be added. As such, a frequently used object can be retained in the clipboard regardless of when it was added. Further, the clipboard manager also can be configured to permit a user to select the object that is to be inserted into the target application. Thus, the user can browse all of the objects available in the clipboard and select the desired object.
Clipboards have been used in conjunction with a variety of applications that process or otherwise utilize text-based information, including word processing, spreadsheets, databases, web browsers, and custom applications. A clipboard also can be configured to support graphical objects, including images, and executable objects, including hyperlinks. With respect to both text-based information and graphical objects, clipboards are configured to maintain the integrity of the captured information. Therefore, with the exception of unsupported information, an object that has been captured from one application retains the same appearance and characteristics when it is inserted into a different application. Once inserted, however, the object can be modified by a user.